const axios = require('axios');

const API_BASE = 'http://localhost:3000';
const TEST_USER_ID = '68aeed055e85b6f7f7ff0480';

async function testCompleteLogin() {
  console.log('🧪 测试完整的一键登录流程...\n');
  
  try {
    // 1. 测试登录（应该失败，因为用户不存在）
    console.log('1. 测试登录（预期失败）...');
    try {
      const loginRes = await axios.post(`${API_BASE}/users/login-by-id`, {
        userId: TEST_USER_ID
      });
      console.log('✅ 登录成功（用户已存在）');
      console.log('用户信息:', loginRes.data.data);
      return;
    } catch (error) {
      if (error.response?.status === 404) {
        console.log('❌ 登录失败（用户不存在）- 符合预期');
      } else {
        console.log('❌ 登录失败（其他错误）:', error.response?.data);
        return;
      }
    }
    
    // 2. 创建用户
    console.log('\n2. 创建测试用户...');
    const createRes = await axios.post(`${API_BASE}/users/create-test-user`, {
      userId: TEST_USER_ID,
      username: 'admin',
      password: '123'
    });
    
    if (createRes.data.success) {
      console.log('✅ 用户创建成功');
      console.log('创建结果:', createRes.data.data);
    } else {
      console.log('❌ 用户创建失败:', createRes.data.message);
      return;
    }
    
    // 3. 重新测试登录
    console.log('\n3. 重新测试登录...');
    const loginRes2 = await axios.post(`${API_BASE}/users/login-by-id`, {
      userId: TEST_USER_ID
    });
    
    if (loginRes2.data.success) {
      console.log('✅ 登录成功！');
      console.log('用户信息:', {
        userId: loginRes2.data.data.userId,
        username: loginRes2.data.data.username,
        nickname: loginRes2.data.data.nickname,
        hasToken: !!loginRes2.data.data.accessToken
      });
    } else {
      console.log('❌ 登录仍然失败:', loginRes2.data.message);
    }
    
  } catch (error) {
    console.error('❌ 测试失败:', error.message);
    if (error.response) {
      console.error('响应数据:', error.response.data);
    }
  }
}

// 运行测试
testCompleteLogin();
